package cn.edu.gzhu.workOrderManagement.pojo.dto.workOrder;

import cn.edu.gzhu.workOrderManagement.constants.RegexConstant;
import cn.edu.gzhu.workOrderManagement.constants.WorkOrderAlertLevelConstant;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Future;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Pattern;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@Data
public class WorkOrderBusUpdateDto {

    /**
     * 唯一表示符，对外展示
     */
    private String uuid;

    /**
     * 工单类型 协商工单、投诉工单、绿通工单、核实工单
     */
    @Pattern(regexp = RegexConstant.WORK_ORDER_CATEGORY)
    private String workOrderCategory;

    @Pattern(regexp = RegexConstant.WORK_ORDER_TYPES)
    private String type;

    /**
     * 工单预警级别，使用WorkOrderAlertLevelConstant
     */
    @Max(value = WorkOrderAlertLevelConstant.LOW)
    @Min(value = WorkOrderAlertLevelConstant.CRITICAL)
    private Integer alertLevel;
    /**
     * 分公司负责人，用户输入
     */
    @Length(max = 31)
    private String branchLeader;
    /**
     * 归属分公司
     */
    @Length(max = 31)
    private String branchName;
    /**
     * 归属组别,用户输入
     */
    private Integer teamId;
    /**
     * 归属组员，用户输入
     */
    @Length(max = 31)
    private String teamMember;

    private LinkedHashMap<String,String> reviewComment;


    /**
     * 工单预期结束时间
     */
    @Future
    private LocalDateTime expectedEndTime;
    /**
     * 手别,用户输入
     */
    @Pattern(regexp = RegexConstant.MANUAL_TYPE)
    private String manualType;
    /**
     * 委托方
     */
    @Pattern(regexp = RegexConstant.DELEGATOR)
    private String delegator;

    private String teamName;



    /**
     * 工单请求者，用户输入
     */
    @Length( max = 32)
    private String requestUser;

    /**
     * 工单请求者的身份证，用户输入
     */

    private String requestIdCard;

    /**
     * 逻辑卡号，用户输入
     */
    @Length(max = 255)
    private String logicalCardNumber;
    /**
     * 案件号，用户输入
     */
    @Length(max = 63)
    private String caseNumber;
    /**
     * 类别，用户输入
     */
    @Length(max =63)
    private String category;
    /**
     * 工单内容
     */
    private List<String> content;
    /**
     * 银行处理建议,用户输入
     */
    private String bankProcessingAdvice;
    /**
     * 是否为监管投诉，用户输入
     */
    private Boolean isRegulatoryComplaint;
    /**
     * 经办人,用户输入
     */
    @Length(max = 31)
    private String handler;
    /**
     * 内部核实情况,用户输入
     */
    private String processedDetails;
    /**
     * 委案批次,用户输入
     */
    @Length(max = 127)
    private String caseBatch;
    /**
     * 工单标题
     */
    @Length( max = 31)
    private String title;
    /**
     * 处理上传的附件链接
     */
    private List<String> annex;
    /**
     * 敏感字眼
     */
    private Boolean isSensitive;
    /**
     * 客户手机号
     */

    private String phoneNumber;
    /**
     * 投诉号码
     */
    private List<String> complaintNumber;

    /**
     * 是否重诉工单
     */
    private Boolean isKeyComplaint;

    /**
     * 客户号码
     */
    @Length(max = 63)
    private String clientNumber;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;


    /**
     * 是否被删除
     */
    private Boolean isDeleted;

}
